Skip to main content

Network Namespaces

Network Namespace — bu Linux yadro tizimidagi imkoniyat bo‘lib, u orqali bir nechta virtual tarmoq muhitlari yaratish mumkin. Har bir namespace o‘zining mustaqil:

  • IP manzillari
  • interfeys (interface)
  • routing jadvallari (routing tables)
  • iptables konfiguratsiyasi

bilan ishlaydi. Bu konteyner texnologiyalari (Docker, LXC) asosida turgan eng muhim komponentlardan biridir.

🎯 Oddiy qilib aytganda: network namespace — bu alohida "virtual tarmoq dunyosi". Bitta tizimda bir nechta tarmoq muhitlarini bir-biridan izolyatsiya qilgan holda yuritish imkonini beradi.


Yaratish va Asosiy Buyruqlar

Namespace yaratish:

sudo ip netns add myns

Bu myns nomli yangi network namespace yaratadi.

Mavjud namespacelarni ko‘rish:

ip netns list

Namespace’ni o‘chirish:

sudo ip netns del myns

Virtual Ethernet (veth) Pair bilan ulash

Namespace ichida tarmoq aloqasini tashkil qilish uchun veth (virtual Ethernet) interfeyslar juftligi yaratiladi.

Misol:

# veth juftlik yaratish
dudo ip link add veth0 type veth peer name veth1

# veth0 asosiy namespace’da, veth1 esa myns’da
sudo ip link set veth1 netns myns

# interfeyslarni yoqish
sudo ip link set veth0 up
sudo ip netns exec myns ip link set veth1 up

# IP berish
sudo ip addr add 10.200.1.1/24 dev veth0
sudo ip netns exec myns ip addr add 10.200.1.2/24 dev veth1

Endi veth0 va veth1 bir-biri bilan gaplasha oladi.


Ping bilan sinash

sudo ip netns exec myns ping 10.200.1.1

Agar hammasi to‘g‘ri bo‘lsa, ping ishlaydi.


Amaliy Foyda

  • Docker konteynerlar ichida izolyatsiyalangan tarmoq muhitlari yaratish
  • Virtual laboratoriyalar qurish
  • Xavfsizlikni oshirish (segregatsiya)
  • Simulyatsiya va testlash uchun ideal

Xulosa

Network namespaces orqali siz bir kompyuterda bir nechta mustaqil tarmoq muhitini yaratishingiz mumkin. Bu zamonaviy tizim arxitekturasi, DevOps va container dunyosining asosi hisoblanadi.